Para este checkpoint, continuaremos utilizando a base de dados do github, reforçar o conhecimento em testes de hipóteses. Então, primeiramente iremos importar os dados:
commits = read_csv(here("data/github-users-committing-filetypes.csv"))
É importante lembrar que estamos relembrando as perguntas propostas no checkpoint anterior, então esta atividade é mais focada em trabalhar testes de hipóteses onde foi utilizado bootstrap. Se tiver a curiosidade de ver o notebook anterior está neste link.
commits <- commits %>%
mutate(date = paste(the_year,the_month,month_day,sep='-') %>%
as.Date(.))
commits$weekday <- weekdays(as.Date(commits$date))
Antes de tudo, é bom notar que para o ano de 2017 só temos dados até o primeiro semestre, então algumas linguagens possuem poucas ocorrências devido a isso. Mas, com este gráfico, podemos notar que linguagens como C não chegaram nem a metade da sua ocorrência no ano de 2016, durante o primeiro semestre de 2017, este fator acontece com outras linguagens como Java e c++. Também podemos destacar que há extensões que só foram utilizadas até então no ano de 2016, isto ocorre com cc. Outro ponto é extensões que já no primeiro semestre de 2017 já superaram mais da metade do ano anterior, isto aconteceu com a extensão woff, ou seja, pode ser uma possível extensão em potencial na comunidade tecnológica.
Obs.: Contanto no hemisfério Sul: Férias de verão: mês de janeiro Férias de inverno: mês de junho
ferias_inverno <- commits %>%
filter(the_month == 6,
file_extension %in% c("go", "py", "rb"))
ferias_verao <- commits %>%
filter(the_month == 1,
file_extension %in% c("go", "py", "rb"))
ferias_inverno %>%
ggplot(aes(x = file_extension,
y = users,
fill = file_extension)) +
geom_col() +
labs(title = "Férias de inverno")
ferias_verao %>%
ggplot(aes(x = file_extension,
y = users,
fill = file_extension)) +
geom_col() +
labs(title = "Férias de verão")
Podemos notar que a linguagem python se destaca no grupo com relação aos usuários da plataforma, seguida de ruby e depois go e que nas férias de inverno no Hemifério Sul(inverso no Hemisfério Norte) há uma maior quantidade de usuários que utilizam essas linguagens.
permutationTest2(data = ferias_inverno, statistic = median(users), data2 = ferias_verao)
## Call:
## permutationTest2(data = ferias_inverno, statistic = median(users),
## data2 = ferias_verao)
## Replications: 9999
## Two samples, sample sizes are 85 181
##
## Summary Statistics for the difference between samples 1 and 2:
## Observed Mean Alternative
## median(users): ferias_inverno-ferias_verao 197 8.146515 two.sided
## PValue
## median(users): ferias_inverno-ferias_verao 0.2012
Antes da interpretação dos resultados, é importante saber o que significa o p-valor:
O p-valor, também denominado nível descritivo do teste, é a probabilidade de que a estatística do teste (como variável aleatória) tenha valor extremo em relação ao valor observado (estatística) quando a hipótese H0 é verdadeira. Para saber se rejeitamos ou não a hipótese, p-valor como o menor valor do nível de significância para o qual rejeitamos H0. Desta forma, se o nível de significância proposto para o teste for menor que o p-valor não rejeitamos a hipótese H0.
Dessa maneira, podemos observar que nosso p-valor para a análise foi de 0.21, ou seja, a probabilidade baixa que os usuários utilizem a plataforma durante as férias de inverno e verão. Então podemos rejeitar a hipótese.
java_cpp_js <- commits %>%
filter(file_extension %in% c("java", "cpp", "js"))
Obs.: Filtrei o dado do ano para facilitar na visualização.
java_cpp_js %>%
filter(the_year == 2017) %>%
ggplot(aes(x = date,
y = users,
color = file_extension)) +
geom_line() +
labs(title = "Ano 2017")
java_cpp_js %>%
filter(the_year == 2016) %>%
ggplot(aes(x = date,
y = users,
color = file_extension)) +
geom_line() +
labs(title = "Ano 2016")
Como podemos observar, ao longo do tempo, apesar de ainda terem uma grande quantidade commits, a utilização desse grupo de linguagens está caindo entre os usuários, principalmente C++.
js <- java_cpp_js %>%
filter(file_extension == "js")
js_bra <- js %>%
filter(month_day == 7,
the_month == 9)
js_eua <- js %>%
filter(month_day == 4,
the_month == 7)
permutationTest2(data = js_eua, statistic = median(users), data2 = js_bra)
## Call:
## permutationTest2(data = js_eua, statistic = median(users), data2 = js_bra)
## Replications: 9999
## Two samples, sample sizes are 1 1
##
## Summary Statistics for the difference between samples 1 and 2:
## Observed Mean Alternative PValue
## median(users): js_eua-js_bra -1180 1.180118 two.sided 0.4974
Com os resultados acima, podemos observar que nosso p-valor para a análise foi de 0.5122, ou seja, a probabilidade baixa de usuários que utilizam a plataforma no dia da independência dos eua. Dessa maneira, podemos rejeitar a hipótese.